home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
comm
/
ns_16550.zip
/
NS16550A.H
< prev
next >
Wrap
Text File
|
1991-07-20
|
6KB
|
108 lines
/* "ns16550A.h"
National Semiconductor Corporation
Microcomputer Systems Group
Header file for the NS16550A UART in the IBM PC environment
Written by : Louis Shay 1/11/89
*/
#define SERIAL_1 0x03f8
#define SERIAL_2 0x02f8
#define SERIAL_3 0x3220
#define SERIAL_4 0x3228
#define SERIAL_5 0x4220
#define SERIAL_6 0x4228
#define SERIAL_7 0x5220
#define SERIAL_8 0x5228
/* UART register definitions using UART base address, int ubase */
#define RBR (ubase+0) /* Receive Buffer Register (R )(DLAB==0)*/
#define THR (ubase+0) /* Transmitter Holding Register ( W)(DLAB==0)*/
#define IER (ubase+1) /* Interrupt Enable Register (R/W)(DLAB==0)*/
#define IIR (ubase+2) /* Interrupt Ident. Register (R ) */
#define FCR (ubase+2) /* FIFO Control Register ( W) */
#define LCR (ubase+3) /* Line Control Register (R/W) */
#define MCR (ubase+4) /* MODEM Control Register (R/W) */
#define LSR (ubase+5) /* Line Status Register (R ) */
#define MSR (ubase+6) /* MODEM Status Register (R/W) */
#define SCR (ubase+7) /* SCratch Register (R/W) */
#define DLL (ubase+0) /* Divisor Latch (LSB) (R/W)(DLAB==1)*/
#define DLM (ubase+1) /* Divisor Latch (MSB) (R/W)(DLAB==1)*/
#define AFR (ubase+2) /* Alternate Function Register(R/W) */
/* register read/write macros */
#define rdRBR() ((int)inp(RBR)) /* read RBR */
#define rdDLL() ((int)inp(DLL)) /* read DLL */
#define rdDLM() ((int)inp(DLM)) /* read DLM */
#define rdIER() ((int)inp(IER)) /* read IER */
#define rdIIR() ((int)inp(IIR)) /* read IIR */
#define rdLCR() ((int)inp(LCR)) /* read LCR */
#define rdMCR() ((int)inp(MCR)) /* read MCR */
#define rdLSR() ((int)inp(LSR)) /* read LSR */
#define rdMSR() ((int)inp(MSR)) /* read MSR */
#define rdSCR() ((int)inp(SCR)) /* read SCR */
#define rdAFR() ((int)inp(AFR)) /* read AFR */
#define wrTHR(val) (outp(THR, val)) /* write THR */
#define wrDLL(val) (outp(DLL, val)) /* write DLL */
#define wrDLM(val) (outp(DLM, val)) /* write DLM */
#define wrIER(val) (outp(IER, val)) /* write IER */
#define wrFCR(val) (outp(FCR, val)) /* write FCR */
#define wrLCR(val) (outp(LCR, val)) /* write LCR */
#define wrMCR(val) (outp(MCR, val)) /* write MCR */
#define wrLSR(val) (outp(LSR, val)) /* write LSR */
#define wrMSR(val) (outp(MSR, val)) /* write MSR */
#define wrSCR(val) (outp(SCR, val)) /* write SCR */
#define wrAFR(val) (outp(AFR, val)) /* write AFR */
#define RBR2 (ubase2+0) /* Receive Buffer Register (R )(DLAB==0)*/
#define THR2 (ubase2+0) /* Transmitter Holding Register ( W)(DLAB==0)*/
#define IER2 (ubase2+1) /* Interrupt Enable Register (R/W)(DLAB==0)*/
#define IIR2 (ubase2+2) /* Interrupt Ident. Register (R ) */
#define FCR2 (ubase2+2) /* FIFO Control Register ( W) */
#define LCR2 (ubase2+3) /* Line Control Register (R/W) */
#define MCR2 (ubase2+4) /* MODEM Control Register (R/W) */
#define LSR2 (ubase2+5) /* Line Status Register (R ) */
#define MSR2 (ubase2+6) /* MODEM Status Register (R/W) */
#define SCR2 (ubase2+7) /* SCratch Register (R/W) */
#define DLL2 (ubase2+0) /* Divisor Latch (LSB) (R/W)(DLAB==1)*/
#define DLM2 (ubase2+1) /* Divisor Latch (MSB) (R/W)(DLAB==1)*/
#define AFR2 (ubase2+2) /* Alternate Function Register(R/W) */
/* register read/write macros */
#define rdRBR2() ((int)inp(RBR2)) /* read RBR */
#define rdDLL2() ((int)inp(DLL2)) /* read DLL */
#define rdDLM2() ((int)inp(DLM2)) /* read DLM */
#define rdIER2() ((int)inp(IER2)) /* read IER */
#define rdIIR2() ((int)inp(IIR2)) /* read IIR */
#define rdLCR2() ((int)inp(LCR2)) /* read LCR */
#define rdMCR2() ((int)inp(MCR2)) /* read MCR */
#define rdLSR2() ((int)inp(LSR2)) /* read LSR */
#define rdMSR2() ((int)inp(MSR2)) /* read MSR */
#define rdSCR2() ((int)inp(SCR2)) /* read SCR */
#define rdAFR2() ((int)inp(AFR2)) /* read AFR */
#define wrTHR2(val) (outp(THR2, val)) /* write THR */
#define wrDLL2(val) (outp(DLL2, val)) /* write DLL */
#define wrDLM2(val) (outp(DLM2, val)) /* write DLM */
#define wrIER2(val) (outp(IER2, val)) /* write IER */
#define wrFCR2(val) (outp(FCR2, val)) /* write FCR */
#define wrLCR2(val) (outp(LCR2, val)) /* write LCR */
#define wrMCR2(val) (outp(MCR2, val)) /* write MCR */
#define wrLSR2(val) (outp(LSR2, val)) /* write LSR */
#define wrMSR2(val) (outp(MSR2, val)) /* write MSR */
#define wrSCR2(val) (outp(SCR2, val)) /* write SCR */
#define wrAFR2(val) (outp(AFR2, val)) /* write AFR */
/* end of ns16550A.h */